/**
 * 字面量类型：是为了让类型标注更精确一些
 * 在 TypeScript 中，字面量类型（Literal Types），
 * 它代表着比原始类型更精确的类型，
 * 同时也是原始类型的子类型，
 * 字面量类型通常和联合类型（即这里的 |）一起使用，表达一组字面量类型
*/
const str: "hanxuming" = "hanxuming";
const str1: "hanxuming" = "hanxuming599";
const str2: string = "hanxuming";
const str3: string = "hanxuming599";
const num: 599 = 599;
const bool: true = true;
const resA : 10000 | 10001 | 50000 = 1


/**
 * 对象字面量类型
 * 对象字面量类型就是一个对象类型的值,
 * 当然，这也就意味着这个对象的值全都为字面量值,
 * 对象字面量类型在实际开发中的使用较少
 * 
*/
interface TmpObject {
    obj: {
        name: "hanxuming" | "hanxuming",
        age: 18
    }
}

const tmpObject: TmpObject = {
    obj: {
        name: "hanxuming",
        age: 18
    }
}

//使用：字面量类型通常和联合类型（即这里的 |）一起使用，表达一组字面量类型
interface Tmp2 {
    bool: true | false;
    num: 1 | 2 | 3;
    str: "lin" | "bu" | "du"
}

//export {}：解决“无法重新声明块范围变量”错误提示问题
export { }